{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Machine Learning Homework 1\n",
    "\n",
    "### Task 1\n",
    "\n",
    "试析随机森林为何比决策树Bagging 集成的训练速度更快。\n",
    "\n",
    "Author: Zhilong Hong"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Import part\n",
    "import time\n",
    "import pandas as pd\n",
    "from scipy.stats import uniform\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "from sklearn.ensemble import RandomForestClassifier\n",
    "from sklearn.ensemble import BaggingClassifier\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.model_selection import KFold\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import accuracy_score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Read data from file\n",
    "\n",
    "def convert_rank_to_int(rank):\n",
    "    return ord(rank) - 96\n",
    "\n",
    "\n",
    "f = open(\"./dataset/krkopt.data\", 'r')\n",
    "data_set = []\n",
    "for line in f.readlines():\n",
    "    data = line.strip().split(',')\n",
    "    data_set.append({\n",
    "        \"white-king-file\": convert_rank_to_int(data[0]),\n",
    "        \"white-king-rank\": data[1],\n",
    "        \"white-rook-file\": convert_rank_to_int(data[2]),\n",
    "        \"white-root-rank\": data[3],\n",
    "        \"black-king-file\": convert_rank_to_int(data[4]),\n",
    "        \"black-king-rank\": data[5],\n",
    "        \"optimal-depth-of-win\": data[6]\n",
    "    })\n",
    "data_set = pd.DataFrame.from_dict(data_set)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# Prepare dataset\n",
    "k_fold_split = 5\n",
    "x = data_set[[col for col in data_set.columns if col not in [\"optimal-depth-of-win\"]]]\n",
    "y = data_set[[\"optimal-depth-of-win\"]].values.reshape((-1))\n",
    "kf = KFold(n_splits=k_fold_split, shuffle=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Score:  0.776728439059\n",
      "Wall time: 325 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2)\n",
    "clf = RandomForestClassifier(n_estimators=10, n_jobs=8)\n",
    "clf.fit(x_train, y_train)\n",
    "score = accuracy_score(y_test, clf.predict(x_test))\n",
    "print('Score: ', score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Score:  0.852637205987\n",
      "Wall time: 3.99 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2)\n",
    "clf = BaggingClassifier(n_estimators=10, n_jobs=8)\n",
    "clf.fit(x_train, y_train)\n",
    "score = accuracy_score(y_test, clf.predict(x_test))\n",
    "print('Score: ', score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD8CAYAAACb4nSYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl8lOW99/HPLzshIZCNJSEEkF0Q\nEFAERVwQW6vS09at1q21tkfUc7o89qm11j49j6fnnPZ4nmNtaVXcAJceKXWpqGBVVHZECAjIEkJC\nErKRhCSTzFzPHzNgwGAGSJhk7u/79corM/dcM/ndZPjOneu67us25xwiIuINMZEuQERETh+FvoiI\nhyj0RUQ8RKEvIuIhCn0REQ9R6IuIeIhCX0TEQxT6IiIeotAXEfGQuEgXcKzMzEyXn58f6TJERLqV\ntWvXHnDOZbXXrsuFfn5+PmvWrIl0GSIi3YqZ7Qmnnbp3REQ8RKEvIuIhCn0REQ/pcn36bWlubqao\nqIjGxsZIlyInISkpidzcXOLj4yNdiojndYvQLyoqIjU1lfz8fMws0uXICXDOUVFRQVFREYMHD450\nOSKe1y26dxobG8nIyFDgd0NmRkZGhv5KE+kiukXoAwr8bky/O5Guo9uEvohItPK1BPjLhn0sWFnY\n6T9LoX8CXnrpJcyMrVu3RrqUk/KrX/2KMWPGMG7cOMaPH8/KlSsjXZKIp5XXNvFfb21n+r8u4+5F\nG3hh7V46+7rl3WIgt6tYuHAh06dPZ9GiRTzwwAOd9nP8fj+xsbEd+poffPABL7/8MuvWrSMxMZED\nBw7g8/lO6TVbWlqIi9NbSOREbSyqZv6K3by8sQSfP8CM4Vn869fymTEsq9O7Q/U/Nkx1dXWsWLGC\n5cuXc+WVVx4V+r/+9a95+umniYmJ4fLLL+ehhx5ix44d3HHHHZSXlxMbG8sLL7zA3r17+fd//3de\nfvllAO68804mTZrEzTffTH5+PrfeeitLly7lzjvvpLa2lnnz5uHz+TjjjDN4+umnSU5OprS0lDvu\nuIOdO3cC8Oijj/Laa6+RmZnJ3XffDcBPf/pT+vbty1133XWkxpKSEjIzM0lMTAQgMzPzyGOrV6/m\n7rvvpr6+nsTERN566y3i4+P53ve+x5o1a4iLi+M3v/kNM2fOZP78+bzyyis0NjZSX1/PsmXL+Ld/\n+zeef/55mpqamDNnDr/4xS86+9chEnGBgGPjvho2FlWT1iOe7NQkslITye6VSGpiHGaGryXA7op6\nPi2rY0dZHTvK69haUssnpbX0TIjl+nPyuHHqIIZmpZy2urtd6P/ir5spKD7Yoa85ekAvfv6VMV/Y\nZvHixcyePZvhw4eTnp7OunXrmDhxIq+99hqLFy9m5cqVJCcnU1lZCcANN9zAvffey5w5c2hsbCQQ\nCLB3794v/BlJSUm89957AFRUVPCd73wHgPvuu4/HHnuMuXPnctdddzFjxgxeeukl/H4/dXV1DBgw\ngK9+9avcfffdBAIBFi1axKpVq4567VmzZvHggw8yfPhwLrnkEq655hpmzJiBz+fjmmuu4bnnnmPy\n5MkcPHiQHj168PDDDwPw8ccfs3XrVmbNmsW2bduA4F8NGzduJD09naVLl7J9+3ZWrVqFc44rr7yS\nd955hwsuuODEfxEiXVxTi5/3P63gjYJS3iwopay2qc12iXEx9ElOoLyuCX/gs+6anN49GJqdwjWT\nB/L1SbmkJp3+c1e6XehHysKFC7nnnnsAuPbaa1m4cCETJ07kzTff5JZbbiE5ORmA9PR0amtr2bdv\nH3PmzAGCYR6Oa6655sjtTZs2cd9991FdXU1dXR2XXXYZAMuWLeOpp54CIDY2lrS0NNLS0sjIyGD9\n+vWUlpYyYcIEMjIyjnrtlJQU1q5dy7vvvsvy5cu55ppreOihhzj77LPp378/kydPBqBXr14AvPfe\ne8ydOxeAkSNHMmjQoCOhf+mll5Keng7A0qVLWbp0KRMmTACCfxFt375doe9hVfU+tpXWsq2sju2l\ntVTU+fj+zKGMGZB2WutwznGgzkdGzwRiYk6+y+RgYzPLtpTx+ub9vLOtnHqfn+SEWGYMz+LS0X05\nd0gG9U0tlNc2UVbbRHltE+V1TVTW++iflsTQrBTOyE5hSFZPkhMiH7mRr+AEtXdE3hkqKipYtmwZ\nmzZtwszw+/2YGb/+9a9xzn2uD+54AzFxcXEEAoEj94+du96zZ88jt2+++WYWL17MWWedxfz583n7\n7be/sMZvf/vbzJ8/n/3793Prrbe22SY2NpYLL7yQCy+8kLFjx/Lkk08yceLENvsQv2gwqXWdzjl+\n8pOf8N3vfvcL65Potr6wit+8sY2t+2spb3X0m5IYR2yM8eaWUn41ZyxfOzu33ddqavFjGAlxJz7P\npKKuifd2HOC97Qd4b8cBSmoayeiZwHlnZDL9jAzOG5rJwPTkdl+nst7HGwX7eW3TflbsOECz35Gd\nmshVE3K4dHRfpg7JICn+6HG3YX1TT7jeSOh2oR8JL774It/61rf4wx/+cGTbjBkzeO+99450m1x/\n/fVHunfS09PJzc1l8eLFXH311TQ1NeH3+xk0aBAFBQU0NTXR2NjIW2+9xfTp09v8mbW1tfTv35/m\n5maeffZZcnJyALj44ot59NFHueeee/D7/dTX19OrVy/mzJnD/fffT3NzMwsWLPjc633yySfExMQw\nbNgwADZs2MCgQYMYOXIkxcXFrF69msmTJ1NbW0uPHj244IILePbZZ7nooovYtm0bhYWFjBgxgnXr\n1h31updddhk/+9nPuOGGG0hJSWHfvn3Ex8eTnZ3dUf/8EgENPj9J8TFhDSoWVR3itifXEB9rXDAs\nixH9UhjWN5URfVPpn5ZERb2PuQvW88MXPmJ9YRX3f2U0iXGfn6hQ19TCE+/tYt67O8HBxaOyuXxs\nf2YMz/pcwB5WWe9jfWEVq3ZV8u72AxSUBLt+eyXFMe2MTG4+rzdb99fy3o4D/PWjYgAGZSRz3tBM\nslITwTkcEHAO5yDggoOsK3dV4g84cvv04Obz8pl9Zn8mDOx9Sn8xdBUK/TAsXLiQe++996ht//AP\n/8CCBQt49NFH2bBhA5MmTSIhIYEvfelL/Mu//AtPP/003/3ud7n//vuJj4/nhRdeYMiQIXzjG99g\n3LhxDBs27EiXSFt++ctfcs455zBo0CDGjh1LbW0tAA8//DC33347jz32GLGxsTz66KNMnTqVhIQE\nZs6cSe/evduc+VNXV8fcuXOprq4mLi6OM844g3nz5pGQkMBzzz3H3LlzaWhooEePHrz55pt8//vf\n54477mDs2LHExcUxf/78I4PArc2aNYstW7YwdepUINiN9Mwzzyj0uxnnHAUlB1m+tYzln5SzvrCK\nSfnpPH7zZFISjx8TDT4/tz+1luaWAC/cMa3NAcnMlESevm0K/750G7//+6dsKj7I726YSE7vHgA0\nNvt55sM9/O7tT6ms93HJqL5k9Ezg9YL9LN5QTHJCLBeNzOZLY/uTl57Mhr3VrCusYn1hNbsO1AMQ\nH2tMzOvDD2cNZ/qwLMbmpBHbKqCdc2wvq2PFjgOsCH0A1DW1ABBjwRMIDTCDvPRkvjdjKLPP7MeY\nAb2i7uRC6+w5oSdq0qRJ7tiLqGzZsoVRo0ZFqKLuIRAIMHHiRF544YUjR/NdiX6HXU+zP8Dbn5Tz\n1pZSln9SRunBYLfMuNw0xuWmsXDVXs7KTePJW6e0OeDonGPuwvW88nEJj980mZkj2/+gf33zfn74\n/EfExRq/uWY8+6oa+H/LtlN6sInzh2Xyz5cOZ0JenyP1rdxZyaubSnh9034q6j+bYpyZksCEvD5M\nzOvDxLzejMvtTY+E8Kc5t9Ut292Z2Vrn3KT22ulIPwoUFBRwxRVXMGfOnC4Z+AL+gGN3RT1DMnuG\nHTaHfC0kxMYQF9ux51DurTzEwlWFPL+miAN1TaQmxnH+8ExmjshmxogsslODEw+mDc1k7sL13PjY\nKp66bQq9jgn+3/99Jy9vLOHHs0eEFfgAl43px7A7U/jeM+u45YnVAEwa1IeHr53AuUOOnnwQHxvD\n9GGZTB+WyYNXjmHV7koO1PkYn9ubgek9Tim0oy3wT4RCPwqMHj36yLx96Xqa/QHuWbSBVz4uYeqQ\nDP7X5SMZP7D3cduX1zbxu7d38OzKQnr3iOe6KXlcNyWPfmnhzQJrS4s/wFtby1iwspB3tpdjwMwR\n2Vx/Th4XDM8ivo0PlsvH9ueRGOPOBeu48U8reerWc0hLDgb/8q1l/Pr1rVwxrj/fmzH0hGoZkpXC\nS/94HvPe2clZA3tz4fD2T0iKi43hvKGZX9hGwtNtundGjhzp6U/n7sw5x9atWz3ZvdPsD3D3ovW8\n+vF+vjohh7e3lVNZ7+PyM/vxw8tGHNUHXnOomT+88ylPrNiNzx/g6vE5VNQ38fdt5cSYcemovtw4\ndRDnDQ2uOOucY9eBetYXBvu41xVWs7fyELExRnxsDPGxRlxs8HbNoWYq6n307ZXINZPzuHbyQAaE\n+tTb82ZBKd9/dh3D+6XwzG3nUFnv46pHVjCwTzJ//t55J9StIp0n3O6dbhH6u3btIjU1Vcsrd0OH\n19Ovra313Hr6vpYAdy1cz9827+e+L4/i2+cPoa6phT++s5M/vruTppYA35iUy7fPH8IrG0v447s7\nqW1s4StnDeCfLhnGkNAHwp6KehasLOS5NXupPtTMkKye5Gf0ZH1hFVWHmgFITYxjfF5vhmal4JzD\n53e0+AO0BBw+f4D4GONLY/tz0cjsk+ouWr61jO8+s5YzslJoavFTdaiZJXdOI7dP+9Mf5fSIqtDX\nlbO6Ny9eOcvXEuDOBetYWlDK/VeM5tbpR3/gldc28cjyHTy7cg/N/uD/wUtG9eUHs4Yzqn+vNl+z\nsdnPKxtLWLCqkJqGZiYM7M3EQcHBzDOyU46ardIZ/r6tnO88tYZAwPHMt8/5XB+8RFZUhb5IZ2r2\nB1hfWM0hXwv+gKPZ7/AHHC2BAAHnGNmvFyP7pYb9V6avJcD3n13Hm1tKeeAro7l52vH/wimsOMTi\nDfs4f1jmkVkrXdnGompqG1uYdob617sazd4RaceWkoO8uLaIxev3HTUdsC0D0pK4cGQ2M0dkM+2M\njOOeTn/I18JdC9fz5pYyHrxqDN+amv+Fr5uXkcxdF3efGVfjco8/AC3dg0JfPKWy3seSDft4cV0R\nm/YdJD7WuGRUX64an0PfXonExcQQGxMcAI2NCQ6Wrt1TxfKt5fxlffAiFwlxMZw7JIMBaUkcqPNR\nWd9ERb2PijrfkRN+fnn1mdx47qAI763I5yn0Jao1NvtZX1jNhzsr+HBnBesKq2j2O87M6cUvrhzD\nlWcNoE/PhC98jTOyU7lmch6+lgBrdleybGsZb28rZ0vJQTJ6JpCZkkhun2QyUoK3z8rtzfRh6v6Q\nrkl9+hJVAgHH+r3V/H1bOR/urGDD3mp8LQFiLLiE9rShmVw9Iee4g6Ui3VWH9umb2WzgYSAW+JNz\n7qFjHs8DngR6h9rc65x7NfTYT4DbAD9wl3Pu9RPZEZH2+APBLphXPy7hb5v2s/9gIzEGZ+akcfN5\n+ZwzOJ1J+emk9fDO7CGR42k39M0sFngEuBQoAlab2RLnXEGrZvcBzzvnHjWz0cCrQH7o9rXAGGAA\n8KaZDXfO+Tt6RyQ6BQKOj4qqqW5oJhAIzqoJOEfABWfdrNldxd8276e8tomEuBguHJ7FvWNHMnNk\ntkJepA3hHOlPAXY453YCmNki4Cqgdeg74PDfy2lAcej2VcAi51wTsMvMdoRe74MOqF2iWEVdEy+u\nLWLhqkJ2Vxw6bruk+BguGpnN5Wf2Z+bI7C9cEVJEwgv9HKD1df6KgHOOafMAsNTM5gI9gUtaPffD\nY56bc+wPMLPbgdsB8vLywqlbopBzjg93VrJgVSGvb9qPzx9gSn46d108jMGZPYmNMWIs9BUDsWbk\n9OnRJa5GJNJdhPO/pa0zUo4d/b0OmO+c+w8zmwo8bWZnhvlcnHPzgHkQHMgNoybpBlr8AUpqGtlT\ncYg9lfUUVhxid0X9UVdWau1AnY/CykP0Sorj+nPyuOGcvG5zNSKR7iKc0C8CBra6n8tn3TeH3QbM\nBnDOfWBmSUBmmM+VKFNzqJmfvLSRNwpKjywxAJAQG8PA9B70S0sipo2zW9N7JnDXxcP48tj+WsRL\npJOEE/qrgWFmNhjYR3Bg9vpj2hQCFwPzzWwUkASUA0uABWb2G4IDucOAVR1Uu3RBH+2t5h8XrGN/\nTSPfPHcQI/ulkpeRTH5GT/r1SoqKy82JdGfthr5zrsXM7gReJzgd83Hn3GYzexBY45xbAvwA+KOZ\n/RPB7pubXfAEgM1m9jzBQd8W4B81cyc6Oed46oM9/J9XCshOTeL5O6YysRusJSPiNTo5S05ZbWMz\n9/7Px7yysYSLRmbzH18/q92zXEWkY2nBNel0vpYAG4uq+dGLGymsPMS9l4/k9vOHqAtHpAtT6EtY\ntpQcZHPxQXaU1bGjrI5Py+sorDyEP+Do2yuRhd85lymD0yNdpoi0Q6EvX2hfdQO//GsBf9u8H4D4\nWCM/oycj+6Vyxbj+DM1KYcbwLHXniHQTCn1pU1OLnz+9u4v/t2w7AD+4dDhfHtefvPTkk7rcnoh0\nDQp9+Zy3PynjF38tYNeBemaP6cd9V4zStVBFooRCP4p9Wl7Hpn019OuVRP+0HvRNSyQx7uiTnnwt\nAYqrG9hbdYiiqgaWby1jaUEpgzN78uStU5gxPCtC1YtIZ1DoR6lPy+u4+r9XUBu6ktNhmSkJ9EtL\nIikuln3VDew/2EjrWbvJCbH86LIRfPv8wZ/7gBCR7k+hH4VqG5u5/ak1xMfF8OItU2lsDlBc08D+\nmkZKahooqWmkwedn6tAMBvZJJrdPDwamB7/365WkPnuRKKbQjzKBgOOfn/+I3RWHeOa2c5iUr2mU\nIvIZHdJFmf9evoM3Ckr56ZdGMXVoRqTLEZEuRqEfRd7aUspv39zGVyfmcMu0/EiXIyJdkEI/Snxa\nXsc9izZw5oA0/mXOWKyNpYtFRBT6UaD1wO3vbzybpHjNuhGRtmkgt5vbXFzDQ69tPTJwm9O7R6RL\nEpEuTKHfDdU3tfDXj4pZuKqQj4pqSIiL4cGrxmjgVkTapdDvRjbtq2HBqkL+sn4f9T4/w/um8POv\njGbOhBx6J2vBMxFpn0K/iwsEHG9uKeVP7+5i1e5KkuJjuGLcAK6bksfEvN4asBWRE6LQ76IafH7+\nvK6Ix97bxa4D9eT07sHPrhjN187OJa1HfKTLE5FuSqHfxTQ2+/nd25/y9Ae7qTrUzFm5afz39ROY\nPaaflkcQkVOm0O9ifrd8B/+1bAeXju7Ld84fwuT8PurCEZEOo9DvQhqb/Ty7spBLRvXlj99q9/rG\nIiInTP0FXcjLG0uoqPdpCQUR6TQK/S7COccTK3YxLDuF8zTfXkQ6iUK/i1izp4rNxQe5eVq++vBF\npNMo9LuI+St2k9YjnjkTciJdiohEMYV+F1Bc3cDfNu/n2skDSU7Q2LqIdB6FfhfwzId7cM5x49RB\nkS5FRKKcQj/CGpv9LFxVyKzR/cjtkxzpckQkyin0I+wvG/ZRdaiZmzVNU0ROA4V+BAWnae5mZL9U\nzhmsC5iLSOdT6EfQhzsr2bq/llunDdY0TRE5LRT6ETT//V30SY7nyvEDIl2KiHiEQj9C9lYe4o2C\nUq6bkqdr2orIaaPQj4BtpbX88IWPMDO+ea6maYrI6aMzgU6jsoON/PbNbTy3ei89E+P45VVnMkAX\nMheR00ihfxrUN7Uw752d/PHdnfhaAtx0Xj5zLxpGek9d11ZETi+Ffid7ZWMJD/x1M+W1TXxpbD9+\nfNlI8jN7RrosEfGosELfzGYDDwOxwJ+ccw8d8/hvgZmhu8lAtnOud+gxP/Bx6LFC59yVHVF4d/Bx\nUQ13L1rP6AG9+P03z+bsQX0iXZKIeFy7oW9mscAjwKVAEbDazJY45woOt3HO/VOr9nOBCa1eosE5\nN77jSu4eGnx+7nluPZkpiTx16xR6J6srR0QiL5zZO1OAHc65nc45H7AIuOoL2l8HLOyI4rqz//va\nFj4tr+c/vnGWAl9EuoxwQj8H2NvqflFo2+eY2SBgMLCs1eYkM1tjZh+a2dXHed7toTZrysvLwyy9\n61r+SRlPfbCH26YPZtoZmZEuR0TkiHBCv631Adxx2l4LvOic87faluecmwRcD/ynmQ393Is5N885\nN8k5NykrKyuMkrquynofP35xIyP6pvKjy0ZEuhwRkaOEE/pFwMBW93OB4uO0vZZjunacc8Wh7zuB\ntzm6vz+qOOe4988bqTnUzH9eO15n2opIlxNO6K8GhpnZYDNLIBjsS45tZGYjgD7AB6229TGzxNDt\nTGAaUHDsc6PFC2uKWFpQyo8uG8Go/r0iXY6IyOe0O3vHOddiZncCrxOcsvm4c26zmT0IrHHOHf4A\nuA5Y5Jxr3fUzCviDmQUIfsA81HrWTzTZU1HPA3/dzNQhGdw2fXCkyxERaVNY8/Sdc68Crx6z7f5j\n7j/QxvPeB8aeQn3dQiDg+OfnPyIuxviPb5xFTIyWSRaRrkkLrnWAt7aWsXZPFfddMVpr6YhIl6bQ\nP0XOOX739g5y+/TgqxPanMkqItJlKPRP0cpdlawvrOa7FwwhLlb/nCLStSmlTtGjb39KZkoCX580\nsP3GIiIRptA/BZv21fD3beXcMm2w5uSLSLeg0D8Fv//7p6QmxnHjVF39SkS6B4X+Sdp9oJ5XPy7h\nhnMH0SspPtLliIiERaF/kv7wzk7iYmO4dXp+pEsREQmbQv8klB5s5M9ri/j62blkpyZFuhwRkbAp\n9E/C4+/toiUQ4PYLhkS6FBGRE6LQP0E1h5p55sM9XDFuAIMydK1bEeleFPon6OkPd1Pv83PHjM9d\nFkBEpMtT6J+ABp+fJ1bsZuaILEYP0NLJItL9KPRPwP+sL6Ki3qejfBHpthT6YXLOMX/FbsYM6MWU\nwemRLkdE5KQo9MO0YkcF28vquGXaYMy0Xr6IdE8K/TDNf38XGT0TuGJc/0iXIiJy0hT6YdhTUc9b\nW8u44Zw8LawmIt2aQj8MT76/h1gzvnmuFlYTke5Nod+OuqYWXlizly+P6092Ly25ICLdm0K/HX9e\nW0RtUwu3TBsc6VJERE6ZQv8LBAKO+e/vZvzA3owf2DvS5YiInDKF/hf4+7Zydh2o55Zp+ZEuRUSk\nQyj0v8AT7+8mOzWRy8/UNE0RiQ4K/ePYUVbHO9vKufHcQSTE6Z9JRKKD0uw4nnx/NwmxMVx3Tl6k\nSxER6TAK/TbUNDTz53VFXDl+AJkpiZEuR0Skwyj027Bkwz4O+fzcfF5+pEsREelQCv02rNxVyYC0\nJM7MSYt0KSIiHUqh34b1hdVMGNQn0mWIiHQ4hf4xSg82sq+6gYl5Cn0RiT4K/WOs21MFwMQ8nYEr\nItFHoX+MdYVVJMTFMGaA+vNFJPoo9I+xdk8VY3PSdEKWiEQlJVsrTS1+Nu07qK4dEYlaCv1WNhcf\nxOcPaBBXRKKWQr+VI4O4mq4pIlEqrNA3s9lm9omZ7TCze9t4/LdmtiH0tc3Mqls9dpOZbQ993dSR\nxXe09YXV5PTuQV9dIUtEolRcew3MLBZ4BLgUKAJWm9kS51zB4TbOuX9q1X4uMCF0Ox34OTAJcMDa\n0HOrOnQvOsi6wiom5adHugwRkU4TzpH+FGCHc26nc84HLAKu+oL21wELQ7cvA95wzlWGgv4NYPap\nFNxZSmoaKKlp1CCuiES1cEI/B9jb6n5RaNvnmNkgYDCw7ESfG2nr9gR7pDSIKyLRLJzQtza2ueO0\nvRZ40TnnP5HnmtntZrbGzNaUl5eHUVLHW1dYRWJcDKP694rIzxcROR3CCf0iYGCr+7lA8XHaXstn\nXTthP9c5N885N8k5NykrKyuMkjreusIqxuXqpCwRiW7hJNxqYJiZDTazBILBvuTYRmY2AugDfNBq\n8+vALDPrY2Z9gFmhbV1KY7OfzfsOqmtHRKJeu7N3nHMtZnYnwbCOBR53zm02sweBNc65wx8A1wGL\nnHOu1XMrzeyXBD84AB50zlV27C6cus3FNfj8ASYo9EUkyrUb+gDOuVeBV4/Zdv8x9x84znMfBx4/\nyfpOiyODuIM0c0dEops6sAn25+f26UF2qk7KEpHo5vnQd86xrrBK/fki4gmeD/3imkZKDzZxttbb\nEREP8Hzof3alLIW+iEQ/hX5hFUnxMYzsnxrpUkREOp1Cv7Cacbm9iY/1/D+FiHiAp5OusdlPQXGN\nunZExDM8Hfqb9tXQ7HdaWVNEPMPTob9WV8oSEY/xdOh/vK+G3D49yExJjHQpIiKnhadDf191A/kZ\nPSNdhojIaePp0C+ubqB/mpZeEBHv8GzoN/sDlNU20b93j0iXIiJy2ng29PfXNOIc5PTWkb6IeIdn\nQ7+kphGA/mk60hcR7/Bw6DcAMEDdOyLiIZ4N/X3Vh0Nf3Tsi4h2eDf2S6kZ6J8eTnBDWxcNERKKC\nZ0M/OF1TXTsi4i3eDf2aRgZojr6IeIx3Q7+6QYO4IuI5ngz9Q74Wahqa6a9BXBHxGE+GfnF1cI5+\njo70RcRjPBr6wemaGsgVEa/xZOgfPjFLi62JiNd4MvT3VTdiBv0U+iLiMZ4M/ZLqBrJTE3UxdBHx\nHE+mXnGNpmuKiDd5MvRLqhsZoEFcEfEgz4W+cy50pK/+fBHxHs+FftWhZhqbA5quKSKe5LnQL9aS\nyiLiYR4OfR3pi4j3eC70dZlEEfEyz4V+cU0DCXExZPRMiHQpIiKnnfdCv7qR/mlJxMRYpEsRETnt\nPBf6JdUNmqMvIp4VVuib2Wwz+8TMdpjZvcdp8w0zKzCzzWa2oNV2v5ltCH0t6ajCT1ZxdYPW0RcR\nz2r3quBmFgs8AlwKFAGrzWyJc66gVZthwE+Aac65KjPLbvUSDc658R1c90lp8QcorW3Skb6IeFY4\nR/pTgB3OuZ3OOR+wCLjqmDbfAR5xzlUBOOfKOrbMjlFW24Q/4DRdU0Q8K5zQzwH2trpfFNrW2nBg\nuJmtMLMPzWx2q8eSzGxNaPvQu1DoAAAISUlEQVTVp1jvKTmyjr66d0TEo9rt3gHamubi2nidYcCF\nQC7wrpmd6ZyrBvKcc8VmNgRYZmYfO+c+PeoHmN0O3A6Ql5d3grsQPl0mUUS8Lpwj/SJgYKv7uUBx\nG23+4pxrds7tAj4h+CGAc6449H0n8DYw4dgf4Jyb55yb5JyblJWVdcI7Ea7PLpOoI30R8aZwQn81\nMMzMBptZAnAtcOwsnMXATAAzyyTY3bPTzPqYWWKr7dOAAiKkpKaR1MQ4UpPiI1WCiEhEtdu945xr\nMbM7gdeBWOBx59xmM3sQWOOcWxJ6bJaZFQB+4EfOuQozOw/4g5kFCH7APNR61s/ptq9aF08REW8L\np08f59yrwKvHbLu/1W0H/HPoq3Wb94Gxp15mxyip0Rx9EfE2T52RW1zdqCN9EfE0z4R+Y7Ofynof\nAzSIKyIe5pnQP7ykso70RcTLPBP6n03XVOiLiHd5LvR1mUQR8TIPhX6we6ef+vRFxMM8E/olNQ1k\npiSSGBcb6VJERCLGM6FfXNNIjrp2RMTjvBP61Q0axBURz/NE6DvnKNEVs0REvBH6BxtaqPf5taSy\niHieJ0K/uEZz9EVEwCuhrzn6IiKAV0JfSzCIiAAeCf2S6gbiY42slMRIlyIiElGeCP3i6gb69koi\nJqaty/2KiHiHN0K/ppEBGsQVEYn+0G/2B/i0rI7cPgp9EZGoD/3XNu2not7HV84aEOlSREQiLupD\n/4kVuxic2ZMZw7MiXYqISMRFdehv2FvN+sJqbpo6SIO4IiJEeeg/sWIXqYlxfG3SwEiXIiLSJURt\n6JcebOSVjSV8fdJAUhLjIl2OiEiXELWh/+yHe/A7x03nDYp0KSIiXUZUhn5js59nVxZy8chsBmX0\njHQ5IiJdRlSG/l8/Kqai3sct0wZHuhQRkS4l6kLfOcf893czom8q5w3NiHQ5IiJdStSF/urdVWwu\nPsjN0/Ix0zRNEZHWoi70n1ixi97J8Vw9PifSpYiIdDlRFfpFVYd4ffN+rp2cR4+E2EiXIyLS5URV\n6D/9wR7MjG9N1TRNEZG2RE3oH/K1sHBVIbPH9NMVskREjiNqTlWtbWzh/OFZ3DotP9KliIh0WVET\n+n17JfHI9RMjXYaISJcWNd07IiLSPoW+iIiHKPRFRDwkrNA3s9lm9omZ7TCze4/T5htmVmBmm81s\nQavtN5nZ9tDXTR1VuIiInLh2B3LNLBZ4BLgUKAJWm9kS51xBqzbDgJ8A05xzVWaWHdqeDvwcmAQ4\nYG3ouVUdvysiItKecI70pwA7nHM7nXM+YBFw1TFtvgM8cjjMnXNloe2XAW845ypDj70BzO6Y0kVE\n5ESFE/o5wN5W94tC21obDgw3sxVm9qGZzT6B54qIyGkSzjz9tpaqdG28zjDgQiAXeNfMzgzzuZjZ\n7cDtAHl5eWGUJCIiJyOc0C8CWl9ZPBcobqPNh865ZmCXmX1C8EOgiOAHQevnvn3sD3DOzQPmAZhZ\nuZntaaemTOBAGLVHI6/uu/bbW7TfJy6sRcfMuc8deB/dwCwO2AZcDOwDVgPXO+c2t2ozG7jOOXeT\nmWUC64HxhAZvgcOnyq4DznbOVZ7YvnyupjXOuUmn8hrdlVf3XfvtLdrvztPukb5zrsXM7gReB2KB\nx51zm83sQWCNc25J6LFZZlYA+IEfOecqAMzslwQ/KAAePNXAFxGRk9fukX5X5NWjAPDuvmu/vUX7\n3Xm66xm58yJdQAR5dd+1396i/e4k3fJIX0RETk53PdIXEZGT0O1CP5x1gKKBmT1uZmVmtqnVtnQz\neyO0jtEbZtYnkjV2BjMbaGbLzWxLaB2nu0Pbo3rfzSzJzFaZ2Ueh/f5FaPtgM1sZ2u/nzCwh0rV2\nBjOLNbP1ZvZy6L5X9nu3mX1sZhvMbE1oW6e+17tV6LdaB+hyYDRwnZmNjmxVnWY+n1+y4l7gLefc\nMOCt0P1o0wL8wDk3CjgX+MfQ7zja970JuMg5dxbB6c6zzexc4F+B34b2uwq4LYI1dqa7gS2t7ntl\nvwFmOufGtxrA7dT3ercKfcJbBygqOOfeAY6d3noV8GTo9pPA1ae1qNPAOVfinFsXul1LMAhyiPJ9\nd0F1obvxoS8HXAS8GNoedfsNYGa5wJeBP4XuGx7Y7y/Qqe/17hb6Xl/Lp69zrgSC4QhkR7ieTmVm\n+cAEYCUe2PdQF8cGoIzg4oSfAtXOuZZQk2h9v/8n8GMgELqfgTf2G4If7EvNbG1oORro5Pd6d7tG\nblhr+Uj3Z2YpwJ+Be5xzB4MHf9HNOecHxptZb+AlYFRbzU5vVZ3LzK4Aypxza83swsOb22gaVfvd\nyjTnXHFoOfo3zGxrZ//A7nakH846QNGs1Mz6A4S+l7XTvlsys3iCgf+sc+5/Qps9se8AzrlqgmtU\nnQv0Di2FAtH5fp8GXGlmuwl2115E8Mg/2vcbAOdcceh7GcEP+il08nu9u4X+amBYaGQ/AbgWWBLh\nmk6nJcDhq4/dBPwlgrV0ilB/7mPAFufcb1o9FNX7bmZZoSN8zKwHcAnB8YzlwNdCzaJuv51zP3HO\n5Trn8gn+f17mnLuBKN9vADPraWaph28Ds4BNdPJ7vdudnGVmXyJ4JHB4HaBfRbikTmFmCwmuUJoJ\nlBK8Atli4HkgDygEvh5taxmZ2XTgXeBjPuvj/d8E+/Wjdt/NbBzBQbtYggdjzzvnHjSzIQSPgNMJ\nLmT4TedcU+Qq7Tyh7p0fOueu8MJ+h/bxpdDdOGCBc+5XZpZBJ77Xu13oi4jIyetu3TsiInIKFPoi\nIh6i0BcR8RCFvoiIhyj0RUQ8RKEvIuIhCn0REQ9R6IuIeMj/By1OUCLoOTw9AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x198546380b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max Accuracy Score:  0.823887485292\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD8CAYAAACMwORRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xd829W9+P/XW/Ke8R5ZTmIncaYN\nDklICKOMQAoJLYVCy2hLuZdfaaGU29JeeuluafslQIHLpS2FtpTRssMoBAgZZOAQZw/HWXaG7djx\ntrx0fn9INo4t2bIjW5b0fj4eecSSPvp8zsdx3jp+n3PeR4wxKKWUCiwWXzdAKaWU92lwV0qpAKTB\nXSmlApAGd6WUCkAa3JVSKgBpcFdKqQCkwV0ppQKQBnellApAGtyVUioAhfjqwsnJySYrK8tXl1dK\nKb+0efPmk8aYlP6O81lwz8rKorCw0FeXV0opvyQihz05TtMySikVgDS4K6VUANLgrpRSAchnOXdX\n2traKCsrw2az+bopQS0iIoIxY8YQGhrq66YopQZpRAX3srIyYmNjycrKQkR83ZygZIyhqqqKsrIy\nJkyY4OvmKKUGaUSlZWw2G0lJSRrYfUhESEpK0t+elPJzIyq4AxrYRwD9N1DK/4244K6UUv7iVGMr\nz206Qod95G1XqsG9m6qqKvLy8sjLyyM9PZ3Ro0d3PT733HOH5JqbNm1i0aJFTJkyhalTp3LrrbfS\n1NQ0oHMcOnSIf/zjH6c9t2XLFm699Va376msrGTx4sWDarNSyuH5T0r54cvb+f27e33dlF5G1ICq\nryUlJVFUVATAT37yE2JiYrjnnnuG7Hrl5eV86Utf4vnnn2f+/PkYY3jppZeor68nKirK4/N0Bvcb\nbrih67lf/epX3HfffW7fk5KSQkZGBuvWrWPBggVndB9KBastR04B8L+rSsjNiOOq2Zk+btFntOfu\noZiYGABWrVrF+eefz7XXXsvkyZO59957efbZZznnnHOYOXMmJSUlgKNn/MUvfpE5c+YwZ84c1q1b\n1+ucjz32GDfffDPz588HHLnua665hrS0NKqrq1m2bBmzZs1i3rx5bNu2DYCPPvqo67eJ/Px86uvr\nuffee1mzZg15eXksX76c+vp6tm3bxuzZs92+B2DZsmU8++yzQ/69UyoQGWMoKq1hycwM5mQl8P1/\nbWXH0VpfN6vLiO25//SNnew6VufVc07LjOP+K6ef8Xm2bt3K7t27SUxMZOLEidx6661s2rSJhx9+\nmD/84Q889NBD3HnnnXz3u99l4cKFHDlyhMsuu4zdu3efdp4dO3Zw8803u7zG/fffT35+Pq+++iof\nfPABN910E0VFRfz+97/nscceY8GCBTQ0NBAREcFvfvMbfv/737NixQoAPvzwQ2bMmNF1LlfvASgo\nKOizd6+Ucu94rY2K+hbmZCWwZFYmVz26lv/422Zev2MBSTHhvm6e9twHY86cOWRkZBAeHs6kSZO4\n9NJLAZg5cyaHDh0CYOXKldxxxx3k5eVx1VVXUVdX19Vj9sTatWu58cYbAbjooouoqqqitraWBQsW\ncPfdd/PII49QU1NDSEjvz+fjx4+TkvJZ0Th370lNTeXYsWOD/TYoFdSKSmsAyB+XQEpsOE/eWMDJ\nhhZuf/ZT2jrsPm7dCO65e6OHPVTCwz/7VLZYLF2PLRYL7e3tANjtdtavX09kZKTb80yfPp3Nmzez\ndOnSXq8Z03v0XUS49957WbJkCW+99Rbz5s1j5cqVvY6LjIw8bZ66q/dMnToVm83WZ/uUUu4VldYQ\nFmIhNyMOgJlj4nngi7O464Uifr5iFz9bOqOfMwytfnvuIjJWRD4Ukd0islNE7nRxzFdEZJvzz8ci\nMntomus/Lr30Uh599NGux50Dtd3dcccdPPPMM2zcuLHrub///e+cOHGCRYsWdeXDV61aRXJyMnFx\ncZSUlDBz5kx+8IMfUFBQwJ49e4iNjT3tt4Lc3Fz279/f9djVewD27dt3WvpGKeW5oiM1TM+MIyzk\nszC6LH80ty2ayF/XH+aFT474sHWepWXage8ZY3KBecC3RGRaj2MOAucbY2YBPwee9G4z/c8jjzxC\nYWEhs2bNYtq0aTzxxBO9jklLS+P555/nnnvuYcqUKeTm5rJmzRri4uL4yU9+0vX+e++9l2eeeQaA\nhx56iBkzZjB79mwiIyO5/PLLmTVrFiEhIcyePZvly5czdepUamtruwK+q/eAIze/ZMmS4fumKBUg\n2jrsbDtaQ97YUb1e+8HiqZyXk8x9r+5gbfFJH7TOQVz9+t/nG0ReAx41xrzn5vUEYIcxZnRf5yko\nKDA9N+vYvXs3ubm5A2qPcm358uXExsb2Odd90aJFvPbaayQkJPR6Tf8tlHJvx9FaPv+HtTz85TyW\n5vUOdbVNbVz35HoOVDby+FfO4uJpaV67tohsNsYU9HfcgAZURSQLyAc29nHYN4C33bz/NhEpFJHC\nysrKgVxaDdDtt99+2thAT5WVldx9990uA7tSqm9dg6ljXf//iY8K5fnb5pGbGcd//n0zb2wd/okL\nHgd3EYkBXgLuMsa4nKMoIhfiCO4/cPW6MeZJY0yBMaag+2wO5X0RERFds21cSUlJYdmyZcPYIqUC\nR1FpDYnRYYxNdD8hYVRUGM/eOpezxifwnee38OInpcPYQg+Du4iE4gjszxpjXnZzzCzgT8BSY0zV\nYBs00DSR8j79N1D+pLXdzv6KhmG9ZlGpI9/eX5G9mPAQnvnaOSzKSeH7L23jL+sODlMLPZstI8Cf\ngd3GmAfdHDMOeBm40Rizb7CNiYiIoKqqSoOLD3XWc+9c6KTUSPf4qv0sfmg1pdUDq8k0WHW2Nkoq\nG8h3MZjqSmSYlSdvOpvLpqfx0zd28diH+/t/kxd4Ms99AXAjsF1EOufz/QgYB2CMeQL4HyAJeNz5\nSdbuScK/pzFjxlBWVobm432rcycmpUY6u93wr81ltNsNL3xSyj2XTRnya24rrcUYyBvnWXAHCA+x\n8tgNZ3HPP7fyu3/vpcNu+M7ncoawlR4Ed2PMWqDP3z2MMbcC7qdleCg0NFR3/1FKeazw8CnKTjUT\nFxHCi4Wl3HlxDqHWoV14X1TqKBY2a4znwR0gxGrhwWvzSIgOY0F20lA07TRafkAp1cutz3zCc5t8\nuwjHEy9/WkZUmJVfXD2TivoW3t9dMeTXLCqtYVJKNPGRA99j2GIR7r9yOmePTxyClvW41pBfQSnl\nV8pONbFydwXPfHzI103pk62tgze3H2fxjHSumJFOelzEkH8gGWPYcqSGPDdTIEcSDe5KqdNsOlgN\nwJ4T9cM2SDkY7++uoN7WzhfyxxBitXDtnLGsLq4c0jaXnWqmqrF1QPl2X9HgrpQ6zaaD1YQ766W8\nu6vcx61x7+VPy0iPi2D+JEf++ro5YxHgxcKhm0++pWvxkgZ3pZSf2XiwmvNykpmaHsu7O0/4ujku\nVTW08NG+SpbmZ2K1OOZ7jB4VyQVTUnnhk1Lah6jkbtGRGiJCLUxJjx2S83uTBnelVJeKOhsHTzZy\nzoRELp2WxieHqqlubPV1s3p5Y+sx2u2GL+SfPmX3+nPGOQZW9wzNwGpR6Slmjo4f8hk53jDyW6iU\nGjYbnfn2uROSuGRaOnYDHwxRoDwTL285yvTMuF496AunpAzZwGpru50dx+pcVoIciTS4K6W6bDpY\nTXSYlemZccwYHUdGfMSIS83sr2hgW1ktV+f3rsbYObD60b5Kyk55d2B1z4k6WtvtfjFTBjS4KxUw\nGlvaOXiy8YzOsfFgFWdnJRJitSAiXDotjdXFlTS3dniplWfulS1lWASuyst0+fp1c8YCeL1QV2cl\nSH+YKQMa3JUKGD99YycXP/gRrw+yvGx1Yyv7yhuYO+GzBTaXTEvH1mZn7X7fbTrRnd1ueHXLMRZN\nTiE11nX9o9GjIrlgcgovFHp3YLXoSA0pseFkxvtH3SUN7koFAFtbB29vP4FF4K7nt/CvzWUDPscn\nhxz59nO6Bfe5ExOJjQgZMamZjQerOVrT7DIl093154yjvK5lwOMFrxUd5e8bDmNr6/2byhYPK0GO\nFBrclQoAq/dVUt/Szh+uz+fcScnc88+tPLvx8IDOsfGAY377rDHxXc+FWi18bmoqK3eXD9n0woF4\nZUsZMeEhXDotvc/jLpqaSlpc+IAGVovL6/nei1u579UdLHzgAx5ftZ86WxsANU2tHDzZ6DeDqaDB\nXamAsGLbcRKiQvlcbhp/urmAi6am8t+v7OCptZ7XD990qIr8caMID7Ge9vwl09I51dTG5sOnvN3s\nAWlu7eCt7Se4fEY6kWHWPo8NsVq4rmAsq/ZVcriq/3EIYww/W7GLqDArf7ypgGmZ8fz2nb0s+M0H\n/O7fe7p+A8j3k3w7aHBXyu81t3awcnc5i2dkEGq1EBFq5Ymvns3i6en8bMUuHl/Vf/3wOlsbu47V\nMXdC72qF509JIcxq4T0fr1Z9d9cJGlraufqsvlMynW6YO57osBD+65/b6LD3vUfEe7vKWVN8krsv\nmcwl09L469fP4Y07FnJeTjKPryrh7he3IjLwSpC+pMFdKT/34d4Kmlo7uHJWRtdzYSEWHr0hn6tm\nZ/Lbd/ay/L2+99DZfOgUdsNpg6mdYsJDWJCdxLu7yod9I53apjae33SEG/64gbteKGJsYiTzXHwA\nuZIeH8HPlk5n06FqnvioxO1xtrYOfv7mLianxfDVeeO7np85Jp7Hv3I27333fK4tGMON88YTE+7J\nFhgjg/+0VCnl0optx0iOCWfuxNODXojVwvLr8ggPsfDw+8XkjR3FhVNTXZ5jw8EqQq1C/jjXc7gv\nmZbOh69sZ295PVPT47x+D+BIjbR22GmwtbN2/0ne2HqMj/ZV0tZhmJAczbcvyuG6OWOxWDwf0Lw6\nfzQf7q1k+Xv7WJCd7DJn/qc1ByitbuYft84lxMXK0+zUGH57zewzujdf0OCulB9rbGnngz0VXFsw\ntqvGSndWi/CrL8xk85FT/PzNXSzMSXa5dH7TwWpmjRnlNpd98bRU/vtVeHdnucvgvvNYLQcqG1k8\nI92jpfk7j9Xy67f2cKymmabWDhpb22lu7aC9W/okPS6Cm+dnsTRvNDNGxw1qloqI8ItlM9h8qJq7\nnt/Cm985j+huve/jtc089mEJl89I59zs5AGffyTT4K6UH1u5uxxbm53Pz3K9oAccM17uW5LL158u\n5K/rD/ONhafvdtbU2s72slq+uWii23OkxkaQP3YU7+0qP217uPI6G7/7915e+rQMYyA3I47ffGEm\ns93MKmnvsPPERyU8tLKYhOgw5k5IJDoshMgwK9HhVqLCQogMtTItM45zshIH1Et3Jz4ylAevy+P6\nP27gZ2/s4oFrZnW99uu39mA3hh9dkXvG1xlp+g3uIjIW+CuQDtiBJ40xD/c4RoCHgSuAJuAWY8yn\n3m+uUqq7FduOkx4XQcH4vpfEXzgllUWTU3h45T6uzh9NYnRY12ufHq6h3W5c5tu7u2RaOg+84+ht\nJ0SF8cc1B3jioxLaOux887yJzBgdzy/f3MXVj6/jlnMn8L1LJ5/WSy6pbOB7L26lqLSGK2dn8vOl\n0xkVFdbHFb1n3sQkbj9/Eo+vKuGCKSlcPjODTQereX3rMb7zuRzGJkYNSzuGkycDqu3A94wxucA8\n4FsiMq3HMZcDOc4/twH/69VWKqV6qbO18dHeSq6YmdFvD1dE+PGSXBpbO3oNrm48WIVF4Ox+PiAu\nnZ4GwC/f3M1F/28VD763j/Mnp7Dy7vP50RW5XDU7k/fuPp8b5o7jqXUHuXT5aj7cU4Hdbnjm40Ms\neWQNB0828sj1+fzh+vxhC+yd7rp4MrPGxHPvy9s5WtPMT17fSWZ8BLefP2lY2zFcPNkg+zhw3Pl1\nvYjsBkYDu7odthT4q3EMpW8QkVEikuF8r1JqCLy3s5zWDjufn53R/8FATlosX507jr9tOMxX543v\nqqi48WA1M0bHExvR956gk1JimJQSzZvbjzNzdDwPXZfXaxA3LiKUXyybybK80fzw5e187elPGJ8U\nxeGqJi6YksIDX5xFWpxvlu+HhVh46Lo8ljyylmWPraOyvoXHbjir3znz/mpAUyFFJAvIBzb2eGk0\n0L1KT5nzOaXUIB2taaal3X3BrhXbjjF6VOSAdgW66+LJxEaE8vMVuzDGYGvroKi0hnOyPNuw+fdf\nms1jN5zFa99a0Cuwd1eQlciK7yzkuxdPpq3dzq+unslfbpnjs8DeaWJKDPdfOY3K+hbmTkjkipl9\nr3T1Zx4PqIpIDPAScJcxpq7nyy7e0mtCrIjchiNtw7hx4wbQTKX8277yenYfr+PSaf2vrmxu7eDB\n9/by57UHmZ4Zzx9vKiC9R7GqmqZW1hSf5BsLJwxoFklCdBh3XZzDT9/Yxfu7K4iNCKG13d5noO4u\nf1wC+R7+1w0PsXLnxTnceXFO/wcPo+vmjCU81ML8icl+UydmMDwK7iISiiOwP2uMednFIWXA2G6P\nxwC9StMZY54EngQoKCgY3tUQSg2zlvYO3tlxgmc3HGGTsyhXSmw43/lcDtcVjCUspPcvzhsOVHHv\nS9s4VNXEkpkZfLi3gqWPreVPN81hZreaL//eeYJ2u+lzlow7X503nr9vOMwv39rN550Ln+Zk+UeN\ncm8QEa7usYNTIOo3LeOcCfNnYLcx5kE3h70O3CQO84BazberYFVa3cQD7+zh3F9/wJ3PF3GizsYP\nL5/KM18/h6ykKH786g4ufvAjXt1yFLtzXne9rY3/fmU7X35yA3YD//jmXB77ylm8dPu5hFgsfOn/\nPubNbZ/9l1qx7Tjjk6KYMXrgC4pCrRbu+/w0Dp5s5P9WH2BqeuywD26qoedJz30BcCOwXUSKnM/9\nCBgHYIx5AngLxzTI/TimQn7N+01VauT7y7qD/GzFLgT4XG4aX503nvOyk7tmsyzKSWbV3kp++++9\n3PVCEU98VMI1Z4/hz2sPUl5n49aFE/jepVO6Uje5GXG8+q0F/MffCvnWPz6lpHIyN8wdx8clVfzn\n+RMHnVa4cEoqF0xJYdXeyn6nQCr/JMNdK6JTQUGBKSws9Mm1lRoKdrvh3N98wJiESB65Pp/MUZF9\nHrti+3EefHcvh6qayEmN4bfXzHK7/N/W1sEPX97OK1uOMiE5moMnG3n7zvPIzRh8KYD9FfVc88R6\nHr3+LBbmBNbqzEAmIpuNMQX9HacrVFXQM8awvqSK+ZOSzmiAbePBak7U2fjRktw+AzuAxSJcNTuT\ny2eks/1oLdMz43qV2u0uItTKg9fOJjs1ht/9ey+TUqKZ2mNz6IHKTo1ly48vCehBxWCmwV0FvY0H\nq7nhTxv5xzfncu6kwfdgX996lKgwKxfnui7O5Uqo1cJZbnrrPYkI37owm3MmJBITHuKVoKyBPXBp\nyV8V9E7U2gDYc7x+0OdoaXdsJHHptDSiwoa2zzQnK/GM0jEqOGhwV0GvqrEVgOKKhkGfY/W+k9Q2\nt7E0T9fuqZFBg7sKelUNLYBjgHGwXis6SkJUqA5MqhFDg7sKetXOnvu+8oZB7TTU0NLOyt3lLJmV\n4VEtc6WGg/4kqqDXmZapbW7jZEPrgN//3q4T2NrsmpJRI4oGdxX0qhpaCHP2uPcPIu/+WpGjgNfZ\nHs56UWo4aHBXQa+6sbVrb82B5t2rGlpYU3ySq/IyvbJrkFLeosFdBb2qxlamZcYREx4y4Bkzb20/\nTofdsDRv4AW8lBpKGtxVUGtp76De1k5SdBjZqTEUlw8suL9WdIwpabEuN41Wypc0uKugdqqxDYDE\nmDByUmPYX+l5cC+tbqLw8Cmu0l67GoE0uKugVtXomOOeFB1GTloMlfUt1DR5NmPmjW2OLQuumq3B\nXY08GtxVUKtyTn1MigknOzUG8HzGzOtFxzh7fAJjE6OGrH1KDZYGdxXUOhcwJUaHkZPqqLLoyaDq\nnhN17DlRrwOpasTSqpAqqHUuYEqKDiMuIpSIUItHPffXi45htQhXzMwY6iYqNSjac1dBraqhhRCL\nEBcRisUijhkzHgT3N7cfZ0F2Mskx4cPQSqUGToO7CmrVja0kRId1LUDKTolhf3nfC5mOVDVxuKqJ\ni6akDEcTlRoUTzbIfkpEKkRkh5vX40XkDRHZKiI7RUT3T1V+o6qxlaTozzaHzkmL5VitjYaWdrfv\nWbO/EoDzJmtwVyOXJz33p4HFfbz+LWCXMWY2cAHw/0REt1JXfqGqoYWkmM9+XDtnzJT0kZpZW3yS\nzPgIJiZHD3n7lBqsfoO7MWY1UN3XIUCsOPbrinEe677bo9QIUt3YSmL0Z3nzHGdwd5d377Ab1u0/\nycKcZN2iTo1o3pgt8yjwOnAMiAWuM8bYvXBepYZcz7TMuMQowqwWit0UENtWVkOdrZ2FOZqSUSOb\nNwZULwOKgEwgD3hURFwW2hCR20SkUEQKKysrvXBppQave12ZTiFWCxOSo9nvpsbM2uKTiMDCbN1x\nSY1s3gjuXwNeNg77gYPAVFcHGmOeNMYUGGMKUlK056N8q3tdme6y09xPh1xTfJLpmXEkRuuwkhrZ\nvBHcjwCfAxCRNGAKcMAL51VqSHWvK9NdTmoMpaeasLV1nPZ8Q0s7nx45xcJs7Zioka/fnLuIPIdj\nFkyyiJQB9wOhAMaYJ4CfA0+LyHZAgB8YY04OWYuV8pLudWW6y0mNxRgoqWxgemZ81/MbD1TRbjcs\n0k2wlR/oN7gbY67v5/VjwKVea5FSw6R7XZnuuhcQ6x7c1xSfJCLUwtlZup2eGvl0haoKWt3rynSX\nlRyF1SK9Nu5YU1zJOROSCA+xDlsblRosDe4qaHWvK9NdeIiV8UlRpxUQO1bTTEllo6ZklN/Q4K6C\nVs+6Mt3lpMacNtd9bbFjGGmhBnflJzS4q6DVcwFTd9mpMRyqaqK13bEeb83+k6TEhjMlLXY4m6jU\noGlwV0GrZ12Z7nJSY+mwGw5VNWJ3lhw4L1tLDij/oZt1qKBV3djKzIRRLl/rPmOmtd1OdWOrpmSU\nX9HgroJWX2mZSSkxiEBxeQOHq5oALTmg/IsGdxWUXNWV6S4yzMrYhCiKK+o51dTK1PRYUuMihrmV\nSg2e5txVUHJXV6a77NQYdhyt5ZODp7TXrvyOBncVlNzVlekup3PGTIdd8+3K72hwV0HJXV2Z7joH\nVcOsFuZOSBqWdinlLRrcVVByV1emuxznnPaCrAQiw7TkgPIvGtxVUHJXV6a77NQYosOsXJybNlzN\nUsprdLaMCkru6sp0FxMewkffv5CEKN2YQ/kfDe4qKPVVV6a75D5y8kqNZJqWUUGprwVMSgUCDe6q\nX3W2Nq77v/UUl9f3f7CfqGpo0X1QVUDT4K76VXSkho0Hq/lwb4Wvm+I11Y2tfU6DVMrfaXBX/Sp2\nblrRffMKf6dpGRXo+g3uIvKUiFSIyI4+jrlARIpEZKeIfOTdJipf2+/ctKI4QIJ7Z10ZTcuoQOZJ\nz/1pYLG7F0VkFPA4cJUxZjrwJe80TY0UnXuJ7q9owBjj49acuc66Mu5quSsVCPoN7saY1UB1H4fc\nALxsjDniPD5wErMKYwzFFQ2Eh1iot7VTUd/i6yadMU/qyijl77yRc58MJIjIKhHZLCI3uTtQRG4T\nkUIRKaysrPTCpdVQq2xooba5jfMnpwCBkXfvrCuTGK0DqipweSO4hwBnA0uAy4Afi8hkVwcaY540\nxhQYYwpSUlK8cGk11PY7UzKXz0wHCIjpkJ11ZTQtowKZN1aolgEnjTGNQKOIrAZmA/u8cG7lY52D\nqOdOSiYuIoT9lQHQc/egroxS/s4bPffXgPNEJEREooC5wG4vnFeNAMUV9cRFhJAaG052akzX4Ko/\nq2powdpPXRml/F2/PXcReQ64AEgWkTLgfiAUwBjzhDFmt4i8A2wD7MCfjDFup00q/1Jc3kBOWiwi\nQk5qLCt3l/u6SWesurGVRA/qyijlz/oN7saY6z045nfA77zSIjWi7K9o4JJpjpK32akxvFBY2hUc\n/ZUuYFLBQFeo+sjmw6d4fesxXzejT1UNLVQ1tnbtSJSd5vjb32fMaF0ZFQw0uPvIA2/v4Z5/bqW2\nuc3XTXGrM4h37kiUnRIYwV3ryqhgoMHdB5pa29lSeorWdjvv7Dju6+a4ta8zuDt77qNHRRIZaqW4\nYvDTIV/+tIxrn1iP3e67la6allHBQIO7DxQeOkVbhyHMauGVLUd93Ry39pfXEx1mJSM+AgCLRZiU\nGn1GPfc3tx1n06FqDpz0Te9f68qoYKHB3QfWlZwk1Cp8feEENhyo5mhNs6+b5FJxRQPZzpkynXJS\nYwcd3I0xbCmtARwfcL6gdWVUsNDg7gPrS6rIH5vADeeMA+D1opE5sFpc0dCVkumUnRrD8Vob9baB\njxWUVjd3rQ79xEfBXevKqGChwX2Y1Ta1seNoLfMnJTEuKYqzxyfwypayEVdtsaaplcr6Fian9Q7u\nACWVjQM+55ZSR0AfnxTF5sN91aL7jK2tg//822Z2HK0d8PVc0boyKlhocB9mGw5WYTdw7qQkAJbl\nj2ZfeQO7jtf5uGWn65opkxp72vOdwX0wqZktR2qIDLXy5TnjOFTVRKUHFSbXH6jinZ0neGrdwQFf\nzxWtK6OChQb3Yba+pIqIUAv54xIA+PzMDEKtwqsjbGC1s6ZMdo+0zPjEKEKtMqgZM1uOnGLWmHjm\nTkwE8Kj3vmbfSQDe3VmOra1jwNfsSevKqGChwX2YfVxykjlZiYSFOL71CdFhXDAlldeKjtHhw+mB\nPRWXNxAZamX0qMjTng+xWpiYHEPJAHvutrYOdh2vI39cAjMy4wkPsXiUd19dXElidBgNLe2s8sIe\nrlpXRgULDe7DqKLexr7yBs6dlHza81fnj6aivoX1JVU+allvxRX1ZKfGuKy/kp0aM+At93Yeq6Ot\nw5A/bhRhIRZmjx1F4eG+g/uxmmb2VzRw26KJJMeE8cbWM18ToHVlVLDQ4D6MOoP3guyk056/aGoq\nseEhI2rO+34XM2U6ZafGUFrdNKA0yZYjjkCeP3YUAAXjE9h5tJbmVvfnWFPs2NDlwimpLJmZwcrd\n5TS0tHt8TVd0AZMKFhrch9FQm5tEAAAUYElEQVT6kipiI0KYnhl/2vMRoVaumJnBOzuO9xnshku9\nrY3jtbauWjI9ZafGYDdwYAAzZraU1jB6VCSpcY4FUXOyEmm3G4qc895dWV18ktTYcCanxXDl7Exa\n2u2s3HVmVSm1rowKFhrch9G6kpPMm5iE1UVKYFn+aBpbO3hvBJTUdTdTplOOM+gPZFC16EgNeeNG\ndT0+yzmgXHjI9aBqh92wtvgk5+WkICKcNS6BzPgI3jjDYmtaV0YFCw3uw6S0uonS6mYWTEpy+frc\nCYlkxEeMiFkzxT1qyvQ0ITkai+DxoGpFnY2jNc1dKRmA+KhQpqTFus27bz9aS21zG4smO8YnLBbh\nytmZrC6upKapdSC3cxpNy6hgocF9mHTm28/NTnb5usUiLM0bzUf7Kqlq6D3/u8NuOHiykfYO+5C2\nExw997AQC2MTo1y+Hh5iZXxStMeDqp0lBzqnf3Y6OyuBT4+ccjlLaPW+SkRgYbfv15WzM2nrMLyz\n44Snt3IarSujgokG92GyruQkyTHhbnvD4Jg102E3rNjmmBXS2NLOOzuOc88/tzLnlyu58PerOOdX\n7/P9f23lgz3ltLQPTX6+uLyeSSkxLtNHnSalxHi8kGnLkRpCrcL0zLjTnp+TlUC9rZ19LjbdXlNc\nyYzM+NNSKNMz45iQHM0b2waXmtG6MiqYeGODbNUPYwwfl1Rx7qSk04pw9TQlPZbcjDj+su4gH+yp\nYH1JFa0dduIiQrhwaioF4xMoPHyKt7ef4MXCMmLCQ7hgSgqLZ6Rz2fR0Qq3e+awurmjoyom7k5MW\nw6q9FbR12Pu9blHpKaZlxBERaj3t+YLxjsVMhYdPkZvxWeCvt7Xx6ZEa/mPRxNOOF3GkZh79oJiK\nehupsREDuS2tK6OCSr/RQESeEpEKEelzX1QRmSMiHSJyjfeaFxhKKhuorG/pKjnQl+sKxnCoqolD\nVY3cOH88z31zHpt/fAkPfzmfG+dn8fCX8yn88cX85WtzuHJ2ButLqrjjH1v4r39u9Upbm1rbKTvV\n3OdvGODYuKPdbjhc1dTnce0ddraV1fZKyQCMSYgkLS6816DqxyVVdNgNiyan9HrPlbMysBt4a9vA\n57xrXRkVTDzpuT8NPAr81d0BImIFHgD+7Z1mBZZ1+5359kmu8+3d3TQ/i8UzMkiLC3fbyw8PsXLh\nlFQunJLKL5YZlr+3j0c/3M8FU1JZlj/6jNpaUuGY3pjjZhpkp5yuLffqe5Uo6G5feQNNrR3kd5sp\n00lEKBif2Kv875riSqLDrC5/e8hJi2VqeixvbDvOLQsm9Hs/3WldGRVM+u25G2NWA/0VAfk28BJw\n5uvDA9DHJScZkxDJuCTXA5TdWSxCenxEn+mb7qwW4a6LcygYn8B9r+6gtLrvnnR/Oqc3ZruZBtlp\nkodb7nVWgswb2zu4A5w9PoGjNc0cr/2spv3qfSeZPympq0RDT1flZbL58CnKTnl+r7a2DlY7F0Vp\nWkYFgzNO0orIaOBq4Ikzb07g6bAbNhyo9iglM1ghVgvLr8tDgLteKDqjGTXFFQ2EWoXx/XwQRYeH\nMHpUZL8zZoqO1JAYHcY4NzNv5mQ58+7O3vvhqkaOVDdxXk7vlEynK2dlAnQNPPfn/d3lXLp8NS9/\nepTrCsYSH6l1ZVTg88YI3EPAD4wx/U7dEJHbRKRQRAorKyu9cOmRb9exOmqb21jgZgqkt4xNjOIX\nV89g8+FTPPrh/kGfp7i8ngnJ0R4Nzman9j9jZktpDfljR7n9TSQ3I5aoMGtX3n31PsfPxXk57r9f\nYxOjyBs7qt8FTYerGvnG05/wjWcKCbUKf//GXB64ZpbHvxUp5c+8EdwLgOdF5BBwDfC4iCxzdaAx\n5kljTIExpiAlxX3PLJB8XOIoWTt/4tD13DstzRvN1fmjeeT9Yo83w+jJsftS3ymZTtmpMZRUNrjd\n7Lq2uY39FQ0u8+2dQqwW8sd9VkRsdbEjhTUhObrPa181O5Odx+ooqfzsw8UYQ2NLOydqbTz47l4u\nWb6aDQeq+NEVU3n7zkUs7OMDQ6lAc8ZTIY0xXaNaIvI0sMIY8+qZnjcQGGP4cG8F2akxXTVVhtpP\nl07nk0PV3Pl8EW/feR6xAyhta2vr4Eh1E8vyPBuUzUmNwdZm52hNs8sFT1vdLF7q6ezxiTz6QTE1\nTa2sL6niytmZ/faul8zK4Odv7uLLT27AKkJjSzuNre10/5xZmpfJDy/PJT1+eL73So0k/QZ3EXkO\nuABIFpEy4H4gFMAYo3l2N1rb7Xz/X1vZcKCa/7psyrBdNy4ilIe/nMeXnljP/7y2k+XX5Xn83uLy\nBozpf6ZMp85ZMsUV9S6De1FpDSIwa0x8r9e6m5OVgN3AU2sP0tDSzvmT++9hp8VF8L1LJrPreB0x\n4SFEh4cQ4/wTHR7C9My4fj9UlApk/QZ3Y8z1np7MGHPLGbUmQNQ2t/Gff9vM+gNV/NdlU/j/Lpg0\nrNc/e3wi374oh4ffL8ZqEcJCLDS1tNPQ0kFTazuNLe00tXbQ3NaBrc2Orc3xdWcZgMlpnqdlwDFo\netHUtF6vbzlyipzUmH5/e8gfl4BF4Kl1h7BahPkeTBkFuOOiHI+OUyoY6QpVLztW08wtf9nEgcpG\nHrx2Nl84a4xP2vHti7LZcbSWFduOER3m6M1GhVmJCQ8hPiqMzFFWIkOtRIRZiQixEhlmITLUSnp8\nZL8LmDqNigpjTlYCj3ywn4r6Fv57SW5XIDfGsKW0hsumpfd7npjwEHIz4th5rI6zxyfobBalvECD\nuxftOlbH157eRFNLB898/ZwhnyHTlxCrhT/fMmfIr/O3b8xl+cp9/HH1AVbvq+Q3X5zFoskpHKpq\noqaprc/B1O4Kxiew81hdn7NklFKe08JhXvLRvkqu/b/1CMI/b5/v08A+nCJCrfzw8lxeuv1cIsOs\n3PTUJn748jbWOhcM5XkY3DtTMRdNTR2ytioVTMQY32zKXFBQYAoLC31ybW9oam1nw4EqVu2t5KN9\nlRyuamJqeix/+docMuIj+z9BALK1dbD8vX38cc0B7Aaiw6xs+8llfVaX7GSMcWzt52G+X6lgJSKb\njTEF/R2naZkBsLV18PcNh1m1t5JNB6tp7bATGWpl/qQkvr5gAl88ewwx4cH7LY0ItfLDK3K5bEY6\n9760jSnpcR4FdnDUmdHArpT3BG8kGqDjtc3c9tfNbD9ay+S0GG4+dzznT06lICuhVynbYHfWuATe\n/e75+Oq3QqWUBnePbD58iv/422ZsbR38+eYCPpfbe9qf6k2X+SvlOxrc+/HPwlL++5UdZIyK4Llv\nztXUgVLKL2hwd6O9w86v397Dn9ceZEF2Eo/dcBajorRUrFLKP2hwB9o67NTb2qltbqOuuY3a5jb+\ntPYgq/dVcsu5Wdy3JJcQL21hp5RSwyFog3txeT2/fnsPGw9U0djau1pxqFV44IszuW7OOB+0Timl\nzkzQBfdTja08tHIff994hKgwK188ewxJ0eHERYYQHxna9WdsYhRpw1TJUSmlvC2ggrutrYNQq8Xl\n3Oq2Djt/W3+Yh1buo6Glna/MHc93L5lMom65ppQKQAET3GuaWpn/6w9o7bCTHhdBRnwEmaMiyRgV\nQVJ0GM9/UsqBykbOy0nmviXTmJKus16UUoErYIL7wZONNLd1sGRWBuFWC0drmikqreHtHc20dRgm\nJkfz1C0FXDglVedfK6UCXsAE9/K6FgBuP38SM0Z/tjmE3W6obmplVGSoznhRSgWNAAruNoBeg6AW\ni5AcE+6LJimllM8ETFe2vM5GiEVI0gFSpZTqP7iLyFMiUiEiO9y8/hUR2eb887GIzPZ+M/tXXtdC\namw4Fg+rECqlVCDzpOf+NLC4j9cPAucbY2YBPwee9EK7Bqy8zkaqzktXSinAg+BujFkNVPfx+sfG\nmFPOhxsAn2waWl5nI12Du1JKAd7PuX8DeNvL5/TIiTobaXE6cKqUUuDF2TIiciGO4L6wj2NuA24D\nGDfOezVbmlrbqbe1kxavPXellAIv9dxFZBbwJ2CpMabK3XHGmCeNMQXGmIKUlBRvXBqACucc97RY\nDe5KKQVeCO4iMg54GbjRGLPvzJs0cCfczHFXSqlg1W9aRkSeAy4AkkWkDLgfCAUwxjwB/A+QBDzu\nXNbf7snO3N7UuYApPV5z7kopBR4Ed2PM9f28fitwq9daNAidwV2nQiqllENArFAtr2shKsxKbHjA\nVFNQSqkzEiDB3UZaXIRWe1RKKaeACe6psZpvV0qpTgES3FtI1znuSinVxe+DuzHGuTpVg7tSSnXy\n++Be29xGa7td0zJKKdWN3wf3zh2YNC2jlFKf8fvgrqtTlVKqN78P7l2rUzW4K6VUF78P7hXO4J6i\nOXellOri98H9RJ2NUVGhRIRafd0UpZQaMfw+uJfXtWhKRimlegiA4K57pyqlVE8BEdzTdXs9pZQ6\njV8H9w67obK+RadBKqVUD34d3E82tGA3WsddKaV68uvgrnPclVLKNb8O7idqO1enas5dKaW66ze4\ni8hTIlIhIjvcvC4i8oiI7BeRbSJylveb6Vp5vbOujPbclVLqNJ703J8GFvfx+uVAjvPPbcD/nnmz\nPFNRZ8MikBSjPXellOqu3+BujFkNVPdxyFLgr8ZhAzBKRDK81cC+nKi1kRIbjtWi2+sppVR33si5\njwZKuz0ucz435MrrdXWqUkq54o3g7qrbbFweKHKbiBSKSGFlZeUZX7i8VlenKqWUK94I7mXA2G6P\nxwDHXB1ojHnSGFNgjClISUk54wuX19u0566UUi54I7i/DtzknDUzD6g1xhz3wnn7ZGvroKapTadB\nKqWUCyH9HSAizwEXAMkiUgbcD4QCGGOeAN4CrgD2A03A14aqsd1VOLfX07SMUkr11m9wN8Zc38/r\nBviW11rkofJ6XZ2qlFLu+O0K1c9Wp2pwV0qpnvw2uGtdGaWUcs9vg3tFfQvhIRbiIvvNLCmlVNDx\n2+B+otZGWlwEIro6VSmlevLb4O7YgUlTMkop5YpfB/dUneOulFIu+WVwN8ZQXqd1ZZRSyh2/DO71\nLe00t3XoNEillHLDL4N7uXOOu6ZllFLKNf8M7nW6A5NSSvXFT4O7rk5VSqm++GVwP6HBXSml+uSX\nwb2izkZcRAiRYVZfN0UppUYkvwzuJ+ps2mtXSqk++GVwL69rIT1eg7tSSrnjl8G9os5GaqwGd6WU\ncsfvgrvdbqiob9Ht9ZRSqg9+F9yrGltptxtNyyilVB/8Lrh3znHXtIxSSrnnUXAXkcUisldE9ovI\nvS5eHyciH4rIFhHZJiJXeL+pDl07MGnPXSml3Oo3uIuIFXgMuByYBlwvItN6HHYf8KIxJh/4MvC4\ntxvaKT4ylMXT08kcpcFdKaXc8WSPunOA/caYAwAi8jywFNjV7RgDxDm/jgeOebOR3RVkJVKQlThU\np1dKqYDgSVpmNFDa7XGZ87nufgJ8VUTKgLeAb7s6kYjcJiKFIlJYWVk5iOYqpZTyhCfB3dUmpabH\n4+uBp40xY4ArgL+JSK9zG2OeNMYUGGMKUlJSBt5apZRSHvEkuJcBY7s9HkPvtMs3gBcBjDHrgQgg\n2RsNVEopNXCeBPdPgBwRmSAiYTgGTF/vccwR4HMAIpKLI7hr3kUppXyk3+BujGkH7gD+DezGMStm\np4j8TESuch72PeCbIrIVeA64xRjTM3WjlFJqmHgyWwZjzFs4Bkq7P/c/3b7eBSzwbtOUUkoNlt+t\nUFVKKdU/De5KKRWAxFepcRGpBA73c1gycHIYmjPS6H0Hn2C9d73vgRtvjOl3LrnPgrsnRKTQGFPg\n63YMN73v4BOs9673PXQ0LaOUUgFIg7tSSgWgkR7cn/R1A3xE7zv4BOu9630PkRGdc1dKKTU4I73n\nrpRSahBGbHDvb/enQCEiT4lIhYjs6PZcooi8JyLFzr8TfNnGoSAiY527d+0WkZ0icqfz+YC+dxGJ\nEJFNIrLVed8/dT4/QUQ2Ou/7BWcdp4AjIlbnjm0rnI8D/r5F5JCIbBeRIhEpdD435D/nIzK4e7j7\nU6B4Gljc47l7gfeNMTnA+87HgaYd+J4xJheYB3zL+W8c6PfeAlxkjJkN5AGLRWQe8ACw3Hnfp3BU\nWg1Ed+KoUdUpWO77QmNMXrfpj0P+cz4igzvddn8yxrQCnbs/BRxjzGqgusfTS4FnnF8/Aywb1kYN\nA2PMcWPMp86v63H8hx9NgN+7cWhwPgx1/jHARcC/nM8H3H0DiMgYYAnwJ+djIQju240h/zkfqcHd\nk92fAlmaMeY4OIIgkOrj9gwpEckC8oGNBMG9O1MTRUAF8B5QAtQ4K7BC4P68PwR8H7A7HycRHPdt\ngHdFZLOI3OZ8bsh/zj2qCukDnuz+pAKAiMQALwF3GWPqHJ25wGaM6QDyRGQU8AqQ6+qw4W3V0BKR\nzwMVxpjNInJB59MuDg2o+3ZaYIw5JiKpwHsismc4LjpSe+6e7P4UyMpFJAPA+XeFj9szJEQkFEdg\nf9YY87Lz6aC4dwBjTA2wCseYwygR6exsBeLP+wLgKhE5hCPNehGOnnyg3zfGmGPOvytwfJifwzD8\nnI/U4O7J7k+B7HXgZufXNwOv+bAtQ8KZb/0zsNsY82C3lwL63kUkxdljR0QigYtxjDd8CFzjPCzg\n7tsY80NjzBhjTBaO/88fGGO+QoDft4hEi0hs59fApcAOhuHnfMQuYhKRK3B8sluBp4wxv/Rxk4aE\niDwHXICjSlw5cD/wKo49acfh2MLwS8aYnoOufk1EFgJrgO18loP9EY68e8Deu4jMwjGAZsXRuXrR\nGPMzEZmIo0ebCGwBvmqMafFdS4eOMy1zjzHm84F+3877e8X5MAT4hzHmlyKSxBD/nI/Y4K6UUmrw\nRmpaRiml1BnQ4K6UUgFIg7tSSgUgDe5KKRWANLgrpVQA0uCulFIBSIO7UkoFIA3uSikVgP5/WDxu\nZdD61kcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x198551601d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Time:  85.45165214664192\n"
     ]
    }
   ],
   "source": [
    "# Fit the model\n",
    "score_list = []\n",
    "time_list = []\n",
    "start_time = time.clock()\n",
    "iterate_time = time.clock()\n",
    "for i in range(1, 51):\n",
    "    clf = RandomForestClassifier(n_estimators=i, n_jobs=8)\n",
    "    score_of_this_iteration = 0\n",
    "    for train_index, test_index in kf.split(x):\n",
    "        clf.fit(x.iloc[train_index], y[train_index])\n",
    "        score = accuracy_score(y[test_index], clf.predict(x.iloc[test_index]))\n",
    "        score_of_this_iteration = score_of_this_iteration + score\n",
    "    score_list.append(score_of_this_iteration / k_fold_split)\n",
    "    time_list.append(time.clock() - iterate_time)\n",
    "    iterate_time = time.clock()\n",
    "duration = time.clock() - start_time\n",
    "plt.plot(range(1, 51), score_list, label=\"Accuracy Score\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"Max Accuracy Score: \", max(score_list))\n",
    "plt.plot(range(1, 51), time_list, label=\"Time Cost(s)\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"Time: \", duration)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1984e096160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max Accuracy Score:  0.871150752271\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19855011748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Time:  977.3920034716776\n"
     ]
    }
   ],
   "source": [
    "# Fit the model\n",
    "score_list = []\n",
    "time_list = []\n",
    "start_time = time.clock()\n",
    "iterate_time = time.clock()\n",
    "for i in range(1, 51):\n",
    "    clf = BaggingClassifier(n_estimators=i, n_jobs=8)\n",
    "    score_of_this_iteration = 0\n",
    "    for train_index, test_index in kf.split(x):\n",
    "        clf.fit(x.iloc[train_index], y[train_index])\n",
    "        score = accuracy_score(y[test_index], clf.predict(x.iloc[test_index]))\n",
    "        score_of_this_iteration = score_of_this_iteration + score\n",
    "    score_list.append(score_of_this_iteration / k_fold_split)\n",
    "    time_list.append(time.clock() - iterate_time)\n",
    "    iterate_time = time.clock()\n",
    "duration = time.clock() - start_time\n",
    "plt.plot(range(1, 51), score_list, label=\"Accuracy Score\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"Max Accuracy Score: \", max(score_list))\n",
    "plt.plot(range(1, 51), time_list, label=\"Time Cost(s)\")\n",
    "plt.legend()\n",
    "plt.show()\n",
    "print(\"Time: \", duration)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
